<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        function userr() {
            return new Promise((resolve, reject) => {
                console.log('a数据开始');
                try {
                    // throw new Error('请求错误')
                    setTimeout(() => {
                        console.log('a数据请求成功');
                        const user = {
                            user: 'laoliu'
                        }
                        resolve(user)
                    }, 1000);
                } catch (e) {
                    reject(e.masage)
                }
            })
        }

        function agee(user) {
            return new Promise((resolve, reject) => {
                console.log('b数据开始');
                try {
                    // throw new Error('请求错误')
                    setTimeout(() => {
                        console.log('b数据请求成功');
                        const age = {
                            age: 18
                        }
                        resolve({
                            ...user,
                            ...age
                        })
                    }, 1000);
                } catch (e) {
                    reject(e.masage)
                }
            })
        }

        function sexx(age) {
            return new Promise((resolve, reject) => {
                console.log('c数据开始');
                try {
                    // throw new Error('请求错误')
                    setTimeout(() => {
                        console.log('c数据请求成功');
                        const sex = {
                            sex: '男'
                        }
                        resolve({
                            ...age,
                            ...sex
                        })
                    }, 1000);
                } catch (e) {
                    reject(e.masage)
                }
            })
        }
        async function data() {
            // 这里user是user: "laoliu"
            const user = await userr()
            console.log('user', user);
            // 这里age是 返回user:'laoliu',age:18
            const age = await agee(user)
            // console.log('age',age);
            const sex = await sexx(age)

            console.log('完整的数据是', sex);
        }
        data()

        // function getuser() {
        //     return new Promise((resolve, reject) => {
        //         '开始获取数据user'
        //         try {
        //             // throw new Error('获取失败')
        //             setTimeout(() => {
        //                 const user = {
        //                     user: 'zhangsan'
        //                 }
        //                 resolve(user)
        //                 console.log('user获取成功');
        //             }, 1000);
        //         } catch (e) {
        //             reject(e.massage)
        //         }
        //     })
        // }

        // function getage(user) {
        //     return new Promise((resolve, reject) => {
        //         '开始获取数据age'
        //         try {
        //             // throw new Error('获取失败')
        //             setTimeout(() => {
        //                 const age = {
        //                     age: 18
        //                 }
        //                 resolve({
        //                     ...user,
        //                     ...age
        //                 })
        //                 console.log('age获取成功');
        //             }, 1000);
        //         } catch (e) {
        //             reject(e.massage)
        //         }
        //     })
        // }

        // function getsex(age) {
        //     return new Promise((resolve, reject) => {
        //         '开始获取数据sex'
        //         try {
        //             // throw new Error('获取失败')
        //             setTimeout(() => {
        //                 const sex = {
        //                     sex: '男 '
        //                 }
        //                 resolve({
        //                     ...age,
        //                     ...sex
        //                 })
        //                 console.log('sex获取成功');
        //             }, 1000);
        //         } catch (e) {
        //             reject(e.massage)
        //         }
        //     })
        // }
        // async function aaa() {
        //     const user =await getuser()
        //     const age =await getage(user)
        //     const sex =await getsex(age)

        //     console.log('完整数据',sex);
        // }
        // aaa()


        // function getuser() {
        //     return new Promise((resolve, reject) => {
        //         try {
        //             console.log('user请求开始');
        //             setTimeout(() => {
        //                 const user = {
        //                     user: 'zhangsan'
        //                 }
        //                 resolve(user)
        //                 console.log('user请求成功');
        //             }, 1000);
        //         } catch (e) {
        //             reject(e.massage)
        //         }
        //     })
        // }

        // function getage(user) {
        //     return new Promise((resolve, reject) => {
        //         try {
        //             console.log('age请求开始');
        //             setTimeout(() => {
        //                 const age = {
        //                     age: 18
        //                 }
        //                 resolve({
        //                     ...user,
        //                     ...age
        //                 })
        //                 console.log('age请求成功');
        //             }, 1000);
        //         } catch (e) {
        //             reject(e.massage)
        //         }
        //     })
        // }

        // function getsex(age) {
        //     return new Promise((resolve, reject) => {
        //         try {
        //             console.log('sex请求开始');
        //             setTimeout(() => {
        //                 const sex = {
        //                     sex: 'nan'
        //                 }
        //                 resolve({
        //                     ...age,
        //                     ...sex
        //                 })
        //                 console.log('sex请求成功');
        //             }, 1000);
        //         } catch (e) {
        //             reject(e.massage)
        //         }
        //     })
        // }
        // async function sss() {
        //     const p1 = await getuser()
        //     const p2 = await getage(p1)
        //     const p3 = await getsex(p2)
        //     console.log('全部数据',p3);
        // }
        // sss()
    </script>
</body>

</html>